odhcp6c: add a simple build script
authorÁlvaro Fernández Rojas <[email protected]>
Mon, 3 Nov 2025 11:29:46 +0000 (12:29 +0100)
committerÁlvaro Fernández Rojas <[email protected]>
Mon, 3 Nov 2025 14:18:22 +0000 (15:18 +0100)
Should make it a little bit easier for people who want to contribute.

Link: https://github.com/openwrt/odhcp6c/pull/110
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
.gitignore
scripts/devel-build.sh [new file with mode: 0755]

index 4c784af798fcf4734f1c9c8a465a99d5b5914ac3..83eb1f8cd725d21238e2cd35520d20c76d85a890 100644 (file)
@@ -1,5 +1,6 @@
 .project
 .cproject
+build
 odhcp6c
 config.log
 CMakeCache.txt
@@ -11,4 +12,3 @@ Makefile
 cmake_install.cmake
 install_manifest.txt
 *.deb
-
diff --git a/scripts/devel-build.sh b/scripts/devel-build.sh
new file mode 100755 (executable)
index 0000000..807f2a4
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+set -euxo pipefail
+cd "${0%/*}"
+cd ..
+
+# Sanity checks
+if [ ! -e "CMakeLists.txt" ] || [ ! -e "src/odhcp6c.c" ]; then
+       echo "odhcp6c checkout not found" >&2
+       exit 1
+fi
+
+if [ $# -eq 0 ]; then
+       BUILD_ARGS=""
+else
+       BUILD_ARGS="$@"
+fi
+
+# Create build dirs
+ODHCP6CDIR="$(pwd)"
+BUILDDIR="${ODHCP6CDIR}/build"
+DEPSDIR="${BUILDDIR}/depends"
+[ -e "${BUILDDIR}" ] || mkdir "${BUILDDIR}"
+[ -e "${DEPSDIR}" ] || mkdir "${DEPSDIR}"
+
+# Download deps
+cd "${DEPSDIR}"
+[ -e "json-c" ] || git clone https://github.com/json-c/json-c.git
+[ -e "libubox" ] || git clone https://github.com/openwrt/libubox.git
+
+# Build json-c
+cd "${DEPSDIR}/json-c"
+cmake                                                  \
+       -S .                                            \
+       -B .                                            \
+       -DCMAKE_PREFIX_PATH="${BUILDDIR}"               \
+       -DBUILD_SHARED_LIBS=OFF                         \
+       -DDISABLE_EXTRA_LIBS=ON                         \
+       --install-prefix "${BUILDDIR}"
+make
+make install
+
+# Build libubox
+cd "${DEPSDIR}/libubox"
+cmake                                                  \
+       -S .                                            \
+       -B .                                            \
+       -DCMAKE_PREFIX_PATH="${BUILDDIR}"               \
+       -DBUILD_LUA=OFF                                 \
+       -DBUILD_EXAMPLES=OFF                            \
+       --install-prefix "${BUILDDIR}"
+make
+make install
+
+# Build odhcp6c
+cd "${ODHCP6CDIR}"
+cmake                                                  \
+       -S .                                            \
+       -B "${BUILDDIR}"                                \
+       -DCMAKE_PREFIX_PATH="${BUILDDIR}"               \
+       ${BUILD_ARGS}
+make -C "${BUILDDIR}"
+
+set +x
+echo "✅ Success - the odhcp6c binary is available at ${BUILDDIR}/odhcp6c"
+echo "👷 You can rebuild odhcp6c by running 'make -C build'"
+
+exit 0